﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Vision.Utilities.SetupTool.Task.Processors
{
    public class FolderUnitProcessorContext : UnitProcessorContext
    {
        #region Ctor
        public FolderUnitProcessorContext(string name,
                                        string sourceFolder,
                                        FileOperateAction action,
                                        string destinationFolder = null,
                                        IEnumerable<string> excludedFiles = null)
        {
            Name = name;
            SourceFolder = sourceFolder;
            DestinationFolder = destinationFolder;
            Action = action;
            ExcludedFiles = excludedFiles ?? new string[0];
        }
        #endregion

        #region Properties
        public string Name { get; private set; }
        public string SourceFolder { get; private set; }
        public string DestinationFolder { get; private set; }
        public FileOperateAction Action { get; private set; }
        public IEnumerable<string> ExcludedFiles { get; private set; }
        #endregion
    }

    public enum FileOperateAction
    {
        None,
        Copy,
        Clear,
        Delete,
        Execute,
    }
}
